Communication networks allow people and computers to transfer information to one another over great distances and at a timely speed. When this information is transferred across the communication network, the signals are transmitted in compliance with a network protocol established between a sending and a receiving data processing system. Many such network protocols use sequencing to facilitate the transfer of multiple data packets from one data processing system to a second data processing system, where the second data processing system does not provide an acknowledgement back to the first data processing system. In such protocols, the sending data processing system tags each data packet with a sequence number. Receipt of the data packets is effective acknowledged by the receiving data processing system by identifying a sequence number which was last received. When a data packet is lost on the network, the acknowledgement for the lost frames and subsequent frames is not forthcoming from the receiving party.
When a data packet is lost on a network, it is often necessary for a transferring data processing system to resend the data packet. To determine a point at which the data should be resent, many data processing systems use a static default timer. When a static default timer is implemented in a data processing system, a predetermined period of time is set to provide a time period by which an acknowledgment of receipt of data values should be determined. While such systems are adequate, it is desirable for the timer to be more closely tied with an actual network response time so that a data condition may be detected as soon as practical, while cases in which needless queries are made due to slow responses are minimized.
In an attempt to address these issues, some protocols provide for the receiving data processing system to detect that it has missed a packet by detecting a missing sequence number (per the protocol) and output a request for the missed data packet be resent. Alternatively, a receiving data processing system may fail to acknowledge that it has received a data packet with a predetermined sequence number, assigned in compliance with the protocol. In both of these cases, a response timer is implemented. The response timer is active when data packets are outstanding without acknowledgement. Therefore, when this timer expires, the sending data processing system transmits a query frame to the receiving data processing to determine which data packets need to be resent. This query process is costly to execute since no data may be sent from the sending data processing system or the receiving data processing system while the query is outstanding. If the response timer were made to closely reflect the network response times, the query process would be more apt to be executed when needed. However, current implementations of communication networks fail to implement a timer which does closely approximate and reflect network response times within a communications network.
Therefore, a need exists for a communication network having data processing systems which closely track a response time of the network so that data packets may be transmitted and received at the most efficient rates.